package com.cqc.aiyagril2.utils;

import com.cqc.aiyagril2.MyApp;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.text.format.Formatter;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;

/**
 * 放一些比较零碎的方法
 * @author Administrator
 *
 */
public class CommonUtil {
	/**
	 * 在主线程执行runnable
	 * @param runnable
	 */
	public static void runOnUIThread(Runnable runnable){
		MyApp.getMainHandler().post(runnable);
	}

    /**
     * 延迟n秒后在主线程执行
     * @param runnable
     * @param delayMillis
     */
    public static void runOnUIThreadDelayed(Runnable runnable,long delayMillis){
        MyApp.getMainHandler().postDelayed(runnable,delayMillis);
    }
	/**
	 * 获取Resuource对象
	 * @return
	 */
	public static Resources getResources(){
		return MyApp.getInstance().getResources();
	}
	
	/**
	 * 获取图片资源
	 * @param resId
	 * @return
	 */
	public static Drawable getDrawable(int resId){
		return getResources().getDrawable(resId);
	}
	
	/**
	 * 获取String资源
	 * @param resId
	 * @return
	 */
	public static String getString(int resId){
		return getResources().getString(resId);
	}
	
	/**
	 * 获取String数组资源
	 * @param resId
	 * @return
	 */
	public static String[] getStringArray(int resId){
		return getResources().getStringArray(resId);
	}
	
	/**
	 * 获取Color资源
	 * @param resId
	 * @return
	 */
	public static int getColor(int resId){
		return getResources().getColor(resId);
	}
	
	/**
	 * 获取Dimension资源
	 * @param resId
	 * @return
	 */
	public static float getDimes(int resId){
		return getResources().getDimension(resId);
	}
	
	/**
	 * fragment缓存问题：把自身从父布局中移除
	 * @param child
	 */
	public static void removeSelfFromParent(View child){
		if (child != null) {
			ViewParent parent = child.getParent();
			if (parent instanceof ViewGroup) {
				((ViewGroup)parent).removeView(child);
			}
		}
	}
	
	public static String fromatFileSize(long size){
		return Formatter.formatFileSize(MyApp.getInstance(), size);
	}


	/**
	 * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
	 */
	public static int px2dip(Context context, float pxValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (pxValue / scale + 0.5f);
	}

	/**
	 * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
	 */
	public static int dip2px(Context context, float dpValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (dpValue * scale + 0.5f);
	}
}
